package model

import (
	"time"

	"gorm.io/gorm"
)

// User 数据库用户模型
type User struct {
	gorm.Model
	ID         uint           `gorm:"primarykey" json:"id"`                          // 主键
	UserName   string         `gorm:"size:50;uniqueIndex;not null" json:"user_name"` // 用户名（唯一）
	Phone      string         `gorm:"size:100;uniqueIndex;not null" json:"phone"`    // 邮箱（唯一）
	Password   string         `gorm:"size:100;not null" json:"-"`                    // 密码哈希（返回时忽略）
	Avatar     string         `gorm:"size:255" json:"avatar"`                        // 头像URL（可选）
	Level      int            `gorm:"size:11" json:"level"`                          // 等级
	CreateTime time.Time      `json:"create_time"`
	UpdateTime time.Time      `json:"update_time"`
	DeleteTime gorm.DeletedAt `gorm:"index" json:"delete_time"` // 软删除

	Orders []Order `gorm:"foreignKey:UserID"` // 关联用户的所有文章（一对多）
}

func (User) TableName() string {
	return "zc_user" // 表名前缀+实体名，如t_user（t=table）
}
